2857
9750
Dette spørgsmål har allerede svar her:
Vend en streng i Python
(29 svar)
Lukket for 4 år siden.
Jeg forsøger at vende en streng og bruge nedenstående kode, men den resulterende omvendte listeværdi er Ingen.
Koden:
str_a = 'Dette er omrøring'
rev_word = str_a.split ()
rev_word = rev_word.reverse ()
rev_word = ''. slutte sig til (rev_word)
Det returnerer TypeError. Hvorfor? 
.reverse () returnerer Ingen. Derfor skal du ikke tildele det til en variabel.
Brug dette i stedet:
stra = 'Dette er en streng'
revword = stra.split ()
revword.reverse ()
revword = ''. deltag (revword)
Jeg har kørt koden på IDEOne for dig, så du kan se output. (Bemærk også, at output er stringaisThis; du vil måske bruge '' .join (revword) med et mellemrum i stedet.)
Bemærk også, at den metode, du har angivet, kun vender ordene, ikke teksten. @ ron.rothman leverede et link, der detaljerer, hvordan man vender en streng i sin helhed.
|
Dette er min personlige foretrukne måde at vende en streng på:
stra = "Dette er en streng"
revword = stra [:: - 1]
print (revword) # "gnirts a si sihT
eller, hvis du vil vende ordordren:
revword = "" .forbinde (stra.split () [:: - 1])
print (revword) # "streng a er dette"
:)
|
Forskellige tilbageførsler på en streng:
instring = 'Dette er en streng'
reversedstring = instring [:: - 1]
udskriv reverseret streng # gnirts a si sihT
wordsreversed = ''. slutte (ord [:: - 1] for ord i instring.split ())
udskriv ordomvendt # sihT si a gnirts
revwordorder = ''. sammenføj (ord for ord i instring.split () [:: - 1])
udskriv revwordorder # string a er This
revwordandorder = ''. sammenføj (ord [:: - 1] for ord i instring.split () [:: - 1])
udskriv revwordandorder # gnirts a si sihT
|
Til fremtidig reference, når et objekt har en metode som []. Omvendt () udfører det generelt den handling på objektet (dvs. listen er sorteret og returnerer intet, Ingen) i modsætning til indbyggede funktioner som sorteret, der udfører en handling på et objekt og returnerer en værdi (dvs. den sorterede liste)
|
>>> s = 'dette er en streng'
>>> s [:: - 1]
'gnirts a si siht'
>>> ''. tilslut (omvendt (e))
'gnirts a si siht'
|
For-sløjfen gentager strengen fra slutningen (sidste bogstav) til start (første bogstav)
>>> s = 'Du kan også prøve dette:]'
>>> rev = ''
>>> for i inden for rækkevidde (len (s) - 1, -1, -1):
... rev + = s [i]
>>> rev
']: oot siht yrt nac uoY'
|
Baseret på kommentarer og andre svar:
str_a = 'dette er en streng'
rev_word = ''. sammenføj (omvendt (str_a.split ()))
Metodekædning fungerer trods alt i Python ...
|
List omvendt kan gøres på mere end én måde. Som nævnt i tidligere svar er to meget fremtrædende, en med omvendt () funktion og to med udskæring. Jeg giver nogle indblik i, hvilken vi skal foretrække.
Vi skal altid bruge reverse () -funktionen til tilbageførsel af en Python-liste. To grunde, en vending på stedet og to hurtigere end andre.
Jeg har nogle tal, der understøtter mit svar,
I [15]: len (l)
Ud [15]: 1000
I [16]:% timeit -n1 l.omvendt ()
1 sløjfer, bedst af 3: 7,87 µs pr. Løkke
I [17]:% timeit -n1 l [:: - 1]
1 sløjfer, bedst af 3: 10 µs pr. Løkke
For 1000-heltalslisten fungerede reverse () -funktionen bedre sammenlignet med udskæring.
|
Er det ikke det svar, du leder efter? Gennemse andre spørgsmål mærket python, eller stil dit eget spørgsmål.